Latest Technologies উদাহরণসহ Hyperparameter Tuning গাইড ও নোট

261

Hyperparameter Tuning হলো machine learning মডেলের performance উন্নত করার একটি গুরুত্বপূর্ণ প্রক্রিয়া। এটি মডেলের জন্য বিভিন্ন hyperparameters নির্বাচন এবং সঠিক মান নির্ধারণ করার মাধ্যমে কার্যকরী হয়। এখানে, আমরা কিছু সাধারণ পদ্ধতি নিয়ে আলোচনা করব এবং একটি উদাহরণ দেব যেখানে আমরা Grid Search এবং Random Search ব্যবহার করে hyperparameter tuning করব।

Hyperparameter Tuning কৌশল

Grid Search:

  • একটি systematic পদ্ধতি, যেখানে predefined hyperparameter সেটিংসের সকল combination পরীক্ষা করা হয়।

Random Search:

  • একাধিক random hyperparameter combination নির্বাচন করা হয় এবং তাদের performance পরীক্ষা করা হয়।

Bayesian Optimization:

  • Previous trials এর ফলাফল ব্যবহার করে পরবর্তী hyperparameter সেটিংস নির্ধারণ করা হয়।

Hyperband:

  • এটি বিভিন্ন hyperparameter configurations এর জন্য resource allocation করে, সবচেয়ে promising configurations নির্বাচন করে।

উদাহরণ: Hyperparameter Tuning Using Grid Search and Random Search

এখানে একটি উদাহরণ রয়েছে যেখানে আমরা scikit-learn লাইব্রেরি ব্যবহার করে একটি সিম্পল মডেলের জন্য hyperparameter tuning করব। আমরা RandomForestClassifier ব্যবহার করব এবং Grid Search ও Random Search এর মাধ্যমে tuning করব।

ধাপ ১: প্রয়োজনীয় প্যাকেজ ইম্পোর্ট করা

import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, GridSearchCV, RandomizedSearchCV
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

ধাপ ২: ডেটাসেট প্রস্তুত করা

এখানে আমরা Iris dataset ব্যবহার করব।

# Iris dataset লোড করা
iris = load_iris()
X = iris.data
y = iris.target

# Train-test split করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

ধাপ ৩: Grid Search এর মাধ্যমে Hyperparameter Tuning

# Random Forest Classifier তৈরি করা
rf = RandomForestClassifier()

# Hyperparameter grid নির্ধারণ করা
param_grid = {
    'n_estimators': [10, 50, 100],
    'max_depth': [None, 5, 10, 15],
    'min_samples_split': [2, 5, 10]
}

# Grid Search তৈরি করা
grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, scoring='accuracy', cv=5)
grid_search.fit(X_train, y_train)

# সেরা hyperparameters এবং মডেল মূল্যায়ন করা
best_grid_model = grid_search.best_estimator_
grid_predictions = best_grid_model.predict(X_test)
grid_accuracy = accuracy_score(y_test, grid_predictions)

print(f"Best Hyperparameters from Grid Search: {grid_search.best_params_}")
print(f"Accuracy from Grid Search: {grid_accuracy:.4f}")

ধাপ ৪: Random Search এর মাধ্যমে Hyperparameter Tuning

# Hyperparameter distribution নির্ধারণ করা
param_dist = {
    'n_estimators': [10, 50, 100, 200],
    'max_depth': [None, 5, 10, 15],
    'min_samples_split': [2, 5, 10],
    'min_samples_leaf': [1, 2, 4]
}

# Random Search তৈরি করা
random_search = RandomizedSearchCV(estimator=rf, param_distributions=param_dist, n_iter=10, scoring='accuracy', cv=5, random_state=42)
random_search.fit(X_train, y_train)

# সেরা hyperparameters এবং মডেল মূল্যায়ন করা
best_random_model = random_search.best_estimator_
random_predictions = best_random_model.predict(X_test)
random_accuracy = accuracy_score(y_test, random_predictions)

print(f"Best Hyperparameters from Random Search: {random_search.best_params_}")
print(f"Accuracy from Random Search: {random_accuracy:.4f}")

উপসংহার

Hyperparameter tuning একটি গুরুত্বপূর্ণ প্রক্রিয়া যা মডেলের accuracy এবং performance উন্নত করে। Grid Search এবং Random Search এর মাধ্যমে বিভিন্ন hyperparameter combinations পরীক্ষা করে সেরা ফলাফল পাওয়া যায়।

  • Grid Search exhaustive পদ্ধতি হওয়ার কারণে এটি সব সম্ভাব্য combinations পরীক্ষা করে, তবে এটি computationally ব্যয়বহুল হতে পারে।
  • Random Search কিছু random configurations পরীক্ষা করে, যা computationally কম ব্যয়বহুল এবং অনেক সময় কার্যকর ফলাফল দিতে পারে।

এই উদাহরণে, আমরা Iris dataset ব্যবহার করে Random Forest Classifier এর জন্য hyperparameter tuning করেছি। Hyperparameter tuning মডেলের performance কে উল্লেখযোগ্যভাবে বাড়াতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...